Emacs 初始化文件
1.1 Emacs 是一个强大的文本编辑器,它在启动时会尝试从一个初始化文件中加载 Lisp 程序,以便为用户初始化 Emacs。
默认情况下,Emacs 会尝试从用户的主目录中加载名为 .emacs
的文件,如果该文件存在,则会使用该文件的配置来初始化 Emacs。
但是,用户也可以使用其他文件名,如 .emacs.el
、.emacs.d/init.el
或 .config/emacs/init.el
。
此外,Emacs 还可以加载一个默认的初始化文件,该文件名为 default.el
,它位于 Emacs 的标准搜索路径中,并且在用户的初始化文件之前加载。
用户可以通过设置变量 inhibit-default-init
来避免加载默认的初始化文件。此外,Emacs 还可以加载一个站点启动文件,该文件名为 site-start.el
,它位于 Emacs 的标准搜索路径中,并且在用户的初始化文件之前加载。用户可以通过使用 “--no-site-file” 选项来避免加载站点启动文件。
初始化文件格式
Emacs 初始化文件中包含一个或多个 Lisp 表达式,每个表达式都包含一个函数名和参数,用括号括起来。常用的函数是 setq
,用于设置变量的值。然而,有些变量需要使用 setq-default
来设置默认值。常量可以是数字、字符串、字符、布尔值,或其他 Lisp 对象。字符串和字符的语法规则也有所区别。
更新配置而无需重启
在 Emacs 中编辑 init.el
文件并使修改即时生效,是一项很实用的功能,特别是对于喜欢实时调整配置的用户来说。这里有一些步骤和命令可以帮助你达成这个目的:
-
打开
init.el
文件:- 你可以使用内置的
find-file
命令来打开init.el
文件。通常这个文件位于你的用户目录下的.emacs.d
文件夹中。你可以按下M-x
(Alt + x) 来调用命令输入界面,然后输入find-file
,再输入~/.emacs.d/init.el
来打开文件。
- 你可以使用内置的
-
编辑并保存你的配置:
- 在
init.el
文件中进行所需的更改,这可能包括添加新的插件配置、键绑定或其他 Emacs 功能设置。 - 保存文件:你可以使用快捷键
C-x C-s
(即 Ctrl + x 然后 Ctrl + s)来保存你的更改。
- 在
-
使更改即时生效:
- 要使
init.el
中的更改立即生效,你可以使用eval-buffer
命令来评估当前缓冲区(即init.el
文件)。这可以通过M-x eval-buffer
来完成。 - 另一种方法是选择你更改的部分代码,然后使用
eval-region
命令(可以通过M-x eval-region
调用),这样只有选定区域的代码会被评估和执行。
- 要使
-
使用快捷键:
- 你可以设置快捷键来快速打开
init.el
或执行上述评估操作。例如,添加如下代码到你的init.el
中:(global-set-key (kbd "C-c i") (lambda () (interactive) (find-file "~/.emacs.d/init.el"))) (global-set-key (kbd "C-c e") 'eval-buffer)
- 这样,你可以通过按
C-c i
快速打开init.el
,通过C-c e
来评估整个init.el
的更改。
- 你可以设置快捷键来快速打开
实验发现,C-c e
可以不用设置,已经有 C-c C-e
快捷键负责 eval-buffer 了。
示例:修改 load-path
向变量 load-path 添加一个目录。然后,您可以将 Emacs 中未包含的 Lisp 库放在此目录中,并使用 M-x load-library .
(add-to-list 'load-path "/path/to/lisp/libraries")
示例:加载库
加载已安装的 Lisp 库,命名为 foo (实际上是一个文件 foo.elc 或 foo.el 在标准 Emacs 目录中)。
(load "foo")
也支持直接传入路径:
(load "~/foo.elc")
注:.elc
表示经过编译的 elisp 代码。
示例:使用 use-package 加载包
(use-package hi-lock
:defer t
:init (add-hook 'some-hook 'hi-lock-mode)
:config (use-package my-hi-lock)
:bind (("M-o l" . highlight-lines-matching-regexp)
("M-o r" . highlight-regexp)
("M-o w" . highlight-phrase)))
本文作者:Maeiee
本文链接:Emacs 初始化文件
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!